package examEU;

public class NumeroLagunero {
	private long numero;
	private int digitos;

	public NumeroLagunero(long numero, int digitos) {
		this.numero = numero;
		this.digitos = digitos;
	}

	public int getDigitoLagunero() {

		// caso par
		if (digitos % 2 == 0) {
			return par();
		}
		// caso impar
		else {
			return impar();
		}
	}

	private int par() {
		long num = numero;
		int mayor = (int) num % 10;
		int menor = mayor;
		num /= 10;

		for (int i = 1; i < digitos; i++) {
			int digitoI = (int) num % 10;
			if (digitoI > mayor) {
				mayor = digitoI;
			}
			if (digitoI < menor) {
				menor = digitoI;
			}
			num /= 10;
		}

		int segundoMenor = mayor;
		num = numero;

		for (int i = 0; i < digitos; i++) {
			int digitoI = (int) num % 10;
			if (digitoI < segundoMenor && digitoI > menor) {
				segundoMenor = digitoI;
			}
			num /= 10;
		}

		int lagueno = mayor - segundoMenor;

		return lagueno;
	}

	private int impar() {

		long num = numero;

		for (int i = 0; i < (digitos / 2); i++) {
			num /= 10;
		}

		int lagunero = (int) num % 10;

		return lagunero;
	}

}
